16 - Netzwerkprotokoll NTP
1. Wofür steht NTP?
NTP steht für Network Time Protocol - also Netzwerk-Zeitprotokoll.
Es ist ein Protokoll zur Synchronisation der Systemzeit zwischen Rechnern über ein Netzwerk oder das Internet.
NTP sorgt dafür, dass alle beteiligten Systeme möglichst exakt die gleiche Uhrzeit verwenden - idealerweise bis in den Millisekundenbereich.
2. Welche Besonderheiten muss ein Zeitprotokoll berücksichtigen?
Zeit ist im Netzwerk kein einfacher Wert. Es gibt mehrere technische Herausforderungen:
1. Latenz (Verzögerung)
Ein Paket braucht Zeit vom Client zum Server.
Wenn ein Zeitserver sagt: "Es ist 12:00:00", kommt diese Information nicht exakt zu diesem Zeitpunkt an.
Das Protokoll muss daher:
- Hin- und Rücklaufzeiten messen
- Verzögerungen berechnen
- asymmetrische Laufzeiten berücksichtigen
2. Jitter
Die Netzwerkverzögerung ist nicht konstant.
Sie schwankt. Diese Schwankung nennt man Jitter.
NTP muss daher:
- mehrere Zeitabfragen durchführen
- Mittelwerte bilden
- Ausreißer verwerfen
3. Drift (Uhrenabweichung)
Jede Hardware-Uhr driftet.
Selbst hochwertige Quarze weichen über Zeit leicht ab.
NTP musst:
- nicht nur einmalig korrigieren
- sondern kontinuierlich nachregeln
- die lokale Uhr langsam "ziehen" (slew), statt abrupt zu springen
4. Hierarisches System (Stratum)
NTP arbeitet mit sogenannten Stratum-Leveln:
- Stratum 0 ⟶ Atomuhren / GPS
- Stratum 1 ⟶ direkt mit Stratum 0 verbunden
- Stratum 2 ⟶ synchronisiert mit Stratum 1
- usw.
Je niedriger das Stratum, desto näher an der Referenzzeit.
Das verhindert Zeit-Chaos im Internet.
3. Warum ist Zeitsynchronisation technisch notwendig?
1. Active Directory & Kerberos
Kerberos-Authentifizierung toleriert nur geringe Zeitabweichungen (standardmäßig ±5 Minuten).
Wenn Client und Domaincontroller zu stark abweichen:
⟶ Anmeldung schlägt fehl.
2. Log-Dateien
Ohne synchronisierte Zeit:
- Der Serverlog sagt: 10:00
- Die Firewall sagt 09:57
- Der Client sagt: 10:03
Fehleranalyse wird unmöglich.
3. Zertifikate
TLS-Zertifikate haben:
- gültig ab
- gültig bis
Falsche Systemzeit ⟶ Zertifikat ungültig.
4. Replikation & Datenbanken
Cluster-Systeme benötigen konsistente Zeitstempel.
Kurz gesagt:
Zeit ist eine sicherheitskritische Infrastrukturkomponente im Netzwerk.
4. Welchen Port nutzt NTP?
NTP verwendet:
- UDP Port 123
Wichtig:
NTP nutzt UDP, nicht TCP.
Warum UDP?
- geringe Latenz
- geringer Overhead
- Zeitabgleich benötigt keine verbindungsorientierte Kommunikation
5. Grundlegende Funktionsweise von NTP
Der Client sendet eine Anfrage an einem Zeitserver.
Der Server antwortet mit:
- Zeitstempel beim Empfang
- Zeitstempel beim Senden
Der Client berechnet daraus:
- Laufzeit
- Zeitdifferenz
- Offset
Anschließend wird die lokale Uhr angepasst.
Das geschieht nicht abrupt, sondern meist durch leichtes Beschleunigen oder Verlangsamen der Systemzeit.
-- Praktischer Teil - Windows --
6. Aktuelle Zeitquelle und Abweichung anzeigen
Öffne eine Eingabeaufforderung als Administrator.
Aktuelle Zeitquelle anzeigen:
Code
w32tm /query /source
Das zeigt, von welchen Server dein Rechner aktuell die Zeit bezieht.
Status anzeigen (inkl. Abweichung):
Code
w32tm /query /status
Wichtige Felder:
- Source
- Stratum
- Last Successful Sync Time
- Offset
Der Offset zeigt, wie stark dein System aktuell abweicht.
7. Zeitsynchronisation unter Windows Konfigurieren
Windows verwendet den Dienst:
Windows-Zeitgeber (w32time)
Methode 1 - Grafisch
Systemsteuerung ⟶ Datum und Uhrzeit ⟶ Internet ⟶ Einstellungen ändern
Dort kann man:
- NTP-Server festlegen (z. B. time.windows.com)
- Synchronisierung aktivieren
Methode 2 - Per Kommandozeile
Zeitserver setzen:
w32tm /config /manualpeerlist:"pool.ntp.org" /syncformflags:manual /update
Dienst neu starten:
net stop w32time
net start w32time
Sofort synchronisieren:
w32tm /resync
8. Zeit vom Domänencontroller beziehen
In einer Active Directory Umgebung gilt:
- Clients synchronisieren mit dem Domaincontroller
- Der PDC-Emulator synchronisiert mit einer externen Zeitquelle
Das ist ein hierarchisches Modell.
Auf einem Domainclient:
w32tm /query /source
sollte als Quelle erscheinen:
Domänencontroller
9. Zeitsync-Service prüfen
Dienststatus anzeigen:
services.msc
Dienst: Windows-Zeitgeber
Startup-Typ sollte auf: "Automatisch" stehen.